package com.qhgrain.api.menurolepermission.service;

import java.util.List;

import com.qhgrain.api.menurolepermission.entity.Menu;

public interface IMenuService {

	void insert(Menu menu);
	
	void delete(List<String> ids);
	
	void update(Menu menu);
	
	void updateStatus(List<String> menuId,String status);
	/**
	 * 获取某用户某应用的所有菜单，如果userId为空，则获取应用的所有菜单
	 * @param appId
	 * @param userId
	 * @return
	 */
	List<Menu> queryAll(String appId,String userId,String status);
	
	Menu find(String menuId);
	/**
	 * 查询下级菜单,如果userId不为空，则说明查菜单下该用户拥有的下级菜单
	 * @param menuId
	 * @return
	 */
	List<Menu> queryNextChildMenu(String menuId,String userId,String status);
	
	/**
	 * 查询下级菜单,如果userId不为空，则说明查菜单下该用户拥有的下级菜单
	 * @param menuId
	 * @return
	 */
	List<Menu> queryAllChildMenu(String menuId,String userId,String status);
	
	/**
	 * 查询所有第一级菜单,如果userId不为空，则说明查该用户在该应用下的所有第一级菜单
	 * @return
	 */
	List<Menu> queryTopLevelMenu(String appId,String userId,String status);
	
	List<Menu> queryParentMenus(String menuId);
}
